package com.cake.liulanxiangzhu.controller;

import com.cake.liulanxiangzhu.pojo.dto.AdminCakeskuDTO;
import com.cake.liulanxiangzhu.pojo.dto.AdminCakeskuInsertDTO;
import com.cake.liulanxiangzhu.pojo.dto.CartDTO;
import com.cake.liulanxiangzhu.pojo.entity.OmsOrderItem;
import com.cake.liulanxiangzhu.pojo.vo.AdminCakeskuVO;
import com.cake.liulanxiangzhu.service.AdminCakeskuService;
import com.cake.liulanxiangzhu.web.JsonPage;
import com.cake.liulanxiangzhu.web.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

@RestController
@RequestMapping("/sku")
@Validated
public class AdminCakeskuController {
    @Autowired
   private AdminCakeskuService adminCakeskuService;

    /**
     *04001增加产品型号
     * <span>
     * @param adminCakeskuInsertDTO
     * @return void
     * @author dinghao
     * @date 2023/1/15 10:34
     */
    @PostMapping("/addNew")
    public JsonResult<Void> addNew(@Valid AdminCakeskuInsertDTO adminCakeskuInsertDTO){
        adminCakeskuService.addNew(adminCakeskuInsertDTO);
        return JsonResult.ok();
    }

    /**
     *
     * <span>04002删除产品型号数据
     * @param skuId
     * @return void
     * @author dinghao
     * @date 2023/1/15 10:38
     */
    @PostMapping("/deleteById")
    public JsonResult<Void> deleteById(Integer skuId){
        adminCakeskuService.deleteById(skuId);
        return JsonResult.ok();
    }

    /**
     *
     * <span>04003修改产品型号数据
     * @param adminCakeskuDTO
     * @return void
     * @author dinghao
     * @date 2023/1/15 10:41
     */
    @PostMapping("/updateById")
    public JsonResult<Void> updateById(AdminCakeskuDTO adminCakeskuDTO){
        adminCakeskuService.updateById(adminCakeskuDTO);
        return JsonResult.ok();
    }

    /**
     *
     * <span>04004查询所有产品型号数据
     * @param page
     * @param pageSize
     * @return List<AdminCakeskuVO>
     * @author dinghao
     * @date 2023/1/15 10:44
     */
    @GetMapping("/listSku")
    public JsonResult<JsonPage<AdminCakeskuVO>> listSku(Integer page, Integer pageSize ){
        JsonPage<AdminCakeskuVO> adminCakeskuVOJsonPage = adminCakeskuService.getAllSku(page, pageSize);
        return JsonResult.ok(adminCakeskuVOJsonPage);
    }

    /**
     *
     * <span>04005根据ID查询产品型号数据
     * @param skuId
     * @return AdminCakeskuVO
     * @author dinghao
     * @date 2023/1/15 10:46
     */
    @GetMapping("/getSkuById")
    public JsonResult<AdminCakeskuVO> getSkuById(Integer skuId ){
        AdminCakeskuVO vo = adminCakeskuService.getSkuById(skuId);
        return JsonResult.ok(vo);
    }

    /**
     *
     * <span>微信商品分类
     * @param cakeId
     * @return JsonResult< List< AdminCakeskuVO>>
     * @author dinghao
     * @date 2023/2/15 21:17
     */
    @GetMapping("/weixinQueryById")
    public JsonResult<List<AdminCakeskuVO>> weixinQueryById( Integer cakeId){
        List<AdminCakeskuVO> adminCakeskuVOS = adminCakeskuService.weiXinProductSku(cakeId);
        return JsonResult.ok(adminCakeskuVOS);
    }

    /**
     *
     * <span>购买多个后进行结算，显示商品信息
     * @param cartDTO
     * @return JsonResult< List< AdminCakeskuVO>>
     * @author dinghao
     * @date 2023/2/15 21:17
     */
    @PostMapping("/weiXinQuerySkuList")
    public JsonResult<List<AdminCakeskuVO>> weiXinQuerySkuList(@RequestBody CartDTO cartDTO){
        List<AdminCakeskuVO> vos = adminCakeskuService.weiXinProductSkuList(cartDTO);
        return JsonResult.ok(vos);
    }


}
